package serial;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Serializacao {
	
	public static void main(String[] args) {
		//Criacao do usuario que sera gravado
		UsuarioArmazenado usuario1 = new UsuarioArmazenado("Joao", "joao@gmail.com", "masculino");
	
		try{
			//Criacao do arquivo onde os dados serao gavados, entre parenteses coloque o destino do arquivo como String, coloquei um exemplo
			FileOutputStream arquivo = new FileOutputStream("./saida.dat");
			//A linha abaixo sera a responsavel por gravar objetos no arquivo
			ObjectOutputStream objeto = new ObjectOutputStream(arquivo);
			
			//As tres linhas abaixo serao respectivamente: O objeto a ser gravado, o streaming que e a conexao por onde o objeto vai passar e o fechamento do streaming
			objeto.writeObject(usuario1);
			objeto.flush();
			objeto.close();
			
			System.out.println("Objeto gravado com sucesso!");
		}
		catch(Exception e){
			e.printStackTrace( );
		}
		
		System.out.println("Lendo o arquivo");
		
		try{
			//Leitura do arquivo
			FileInputStream leitura = new FileInputStream("./saida.dat");
			//A linha abaixo sera a responsavel por trazer o objeto que esta gravado no arquivo
			ObjectInputStream objetoLeitura = new ObjectInputStream(leitura);
		    
			//As tres linha abaixo serao: leitura do objeto, parar de ler o objeto e parar de ler o arquivo
			System.out.println(objetoLeitura.readObject());
			objetoLeitura.close();
			leitura.close();
		}
		catch(Exception e){
			e.printStackTrace();
			
			
		}
	}

}
